import org.kwis.msp.lcdui.*;
import org.kwis.msp.lwc.*;
import java.lang.Character;

public class ScreenManager extends Card implements Runnable, GameConstants
{
	private boolean first = true;
	private int paddleLife;
	private int initPaddleX, initPaddleY;

	private Paddle paddle;


	public ScreenManager()
	{

		// Paddle의 초기 위치를 잡아준다.
		initPaddleX = getWidth()/2-PADDLE_WIDTH/2;
		initPaddleY = getHeight()-10-PADDLE_HEIGHT;

		initElements();
	}

	// Ball, Paddle, Block을 초기화시킨다.
	private void initElements()
	{
		paddle = new Paddle(initPaddleX, initPaddleY);
		paddleLife = LIFE;
	}

	public void run()
	{
	}

	public void paint(Graphics g)
	{
		// 처음에 타이틀화면을 그려준다.
		if (first) {
			paintTitleScreen(g);
		}
		// 게임화면을 그러준다.
		else { 
			g.setColor(0xffffff);
			g.fillRect(0,0,getWidth(),getHeight());

			paddle.paint(g);
		}
	}

	protected boolean keyNotify(int type, int key) 
	{
		// 처음 실행할때 타이틀을 보여준후 키가 눌렸을때의 처리
		if(first) {
			first = false;
			repaint();
			return true;
		}
		
		// 왼쪽, 오른쪽 키에대한 이벤트 처리
		switch(Display.getGameAction(key)) 
		{
			case EventQueue.LEFT : 
				paddle.moveLeft();
				break;
			case EventQueue.RIGHT : 
				paddle.moveRight();
				break;
		}
		if(type == EventQueue.KEY_PRESSED) { repaint(); }
		return true;
	}

	// 처음의 타이틀 화면을 그려준다.
	public void paintTitleScreen(Graphics g)
	{
		Image img = null;

		try
		{
			img = Image.createImage("title.png");	
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		g.drawImage(img,0,0,Graphics.TOP);
	}

};